package com.tom.architect.party4.day33.simple1;

import android.util.Log;
import java.io.IOException;

import okhttp3.Interceptor;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;

public class RetrofitClient {
    private final static ServiceApi mServiceApi;

    // 静态代码块实现的单例
    static {
        // Builder设计模式
        OkHttpClient okHttpClient = new OkHttpClient.Builder()
//                .addInterceptor(new Interceptor() {
//                    @Override
//                    public Response intercept(Chain chain) throws IOException {
//                        Request request = chain.request();
//                        return chain.proceed(request); // 返回响应数据，责任链模式。下发
//                    }
//                })
                // 添加 拦截器打印。添加缓存。
//                .addInterceptor(new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() {
//                    @Override
//                    public void log(String message) {
//                        Log.e("TAG", message); // 以Error级别打印出来。
//                    }
//                }).setLever(HttpLoggingInterceptor.Level.BODY))
                .build();

        Retrofit retrofit = new Retrofit.Builder()
                .baseUrl("http://www.api.com/httpServer/") // 后台接口的主路径
                .addConverterFactory(GsonConverterFactory.create()) // 添加解析转换工厂gson解析。
                .client(okHttpClient)
                .build();
        // 用动态代理设计模式：创建实例。ServiceApi接口--> 实例对象
        mServiceApi = retrofit.create(ServiceApi.class);
    }

    public static ServiceApi getServiceApi() {
        return mServiceApi;
    }

}

